<template>
<div>
  <span>姓名: </span><el-input v-model="username" placeholder="请输入姓名" style="width: 60%;"></el-input><el-button type="primary" @click="getUserInfo">搜索</el-button><el-button type="primary" @click="showadd">新增</el-button>
    
    <el-table
      :data="tableData"
      style="width: 100%">
      <el-table-column
        prop="username"
        label="姓名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="age"
        label="年龄"
        width="180">
      </el-table-column>
      <el-table-column
        prop="phone"
        label="电话">
      </el-table-column>
    <el-table-column
         prop="mail"
        label="邮箱" >
     </el-table-column>
      <el-table-column
      fixed="right"
      label="操作"
      width="100">
      <template slot-scope="scope">
        <el-button @click="showEdit(scope.row)" type="text" size="small">编辑</el-button>
        <el-button type="text" size="small">删除</el-button>
      </template>
    </el-table-column>
    </el-table>
    <el-dialog
  :title="titleName"
  :visible.sync="dialogVisible"
  width="30%"
  :before-close="handleClose">
  <el-form ref="form" :model="form" label-width="80px">
  <el-form-item label="姓名">
    <el-input v-model="form.username"></el-input>
  </el-form-item>
   <el-form-item label="邮箱">
    <el-input v-model="form.mail"></el-input>
  </el-form-item>
   <el-form-item label="手机号">
    <el-input v-model="form.phone"></el-input>
  </el-form-item>
   <el-form-item label="年龄">
    <el-input v-model="form.age"></el-input>
  </el-form-item>
</el-form>
  <span slot="footer" class="dialog-footer">
    <el-button @click="dialogVisible = false">取 消</el-button>
    <el-button type="primary" @click="insertUser">确 定</el-button>
  </span>
</el-dialog>
    </div>    
</template>
<script>
import {getUserAll,getUserByName,addUser,updateUser,delUser} from '../api/data.js'
  export default{
    name:'page2',
    data() {
        return {
          tableData: [],
          username:'',
          dialogVisible:false,
          form: {
          username: '',
          mail: '',
          phone: '',
          age: '',
        },
        titleName:"新增"
          }
        },
      mounted(){
        this.getUser()
      },
      methods:{
        getUser(){
       getUserAll().then(res=>{
        console.log("获取全部用户",res)
        this.tableData=res.data
       })
      },
      getUserInfo(){
        if(this.username==""){
          this.getUser()
        }
      else{
          getUserByName({username:this.username}).then(res=>{
            console.log("通过用户名获取",res)
            this.tableData=[]
            this.tableData.push(res.data)
          })
        }
      },
showadd(){
  this.dialogVisible=true
  this.titleName = "新增"
  },
handleClose(done) {
        this.$confirm('确认关闭？')
          .then(_ => {
            done();
          })
          .catch(_ => {});
      },
      insertUser(){
        if(this.titleName=="新增"){
            addUser(this.form).then(res=>{
              console.log("新增用户",res)
              if(res.data=="新增成功"){
                this.$message.success("新增成功")
                getUserAll().then(res=>{
                  console.log("获取全部用户",res)
                  this.tableData = res.data
                })
              }
              else{
                this.$message.error("新增失败")
              }
                this.dialogVisible=false
          })
        }
      else{
        updateUser(this.form).then(res=>{
          console.log("编辑返回",res)
          if(res.data=="编辑成功"){
            this.$message.success("编辑成功")
                getUserAll().then(res=>{
                  console.log("获取全部用户",res)
                  this.tableData = res.data
                })
         }
         else{
            this.$message.error("编辑失败")
         }
         this.dialogVisible=false
        })
       }
      },
      showEdit(row){
        console.log("编辑信息",row)
         this.dialogVisible = true
         this.titleName = "编辑"
         this.form.id = row.id
         this.form.username = row.username
         this.form.mail = row.mail
         this.form.phone = row.phone
         this.form.age = row.age
      }

      }
}
      
</script>
<style>

</style>